package ar.uade.edu.fain.ad.server.business;

import java.util.ArrayList;
import java.util.List;

public class Deposito {

	private Long id;
	private List<MovimientoStock> movimientos;
	private Empleado encargado;
	private List<ItemDeposito> productos;

	public Deposito() {
		super();
		this.movimientos = new ArrayList<MovimientoStock>();
		this.productos = new ArrayList<ItemDeposito>();
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public List<MovimientoStock> getMovimientos() {
		return movimientos;
	}

	public void setMovimientos(List<MovimientoStock> movimientos) {
		this.movimientos = movimientos;
	}

	public Empleado getEncargado() {
		return encargado;
	}

	public void setEncargado(Empleado encargado) {
		this.encargado = encargado;
	}

	public List<ItemDeposito> getProductos() {
		return productos;
	}

	public void setProductos(List<ItemDeposito> productos) {
		this.productos = productos;
	}
	
	public void recibir(final Remito remito) {
		remito.contrastar();
		for (ItemRemito itemRemito : remito.getItems()) {
			final ItemDeposito itemDeposito = 
					buscar(itemRemito.getProducto());
			itemDeposito.contabilizar(itemRemito);
		}
	}
	
	private ItemDeposito buscar(final Producto producto) {
		for (ItemDeposito itemDeposito : getProductos()) {
			if (itemDeposito.getProducto().equals(producto)) {
				return itemDeposito;
			}
		}
		final ItemDeposito nuevo = new ItemDeposito();
		nuevo.setProducto(producto);
		getProductos().add(nuevo);
		return nuevo;
	}

}
